import { ThemeStyleEnum } from './../enums/appEnum';
import type { ProjectConfig } from '/#/config';
import {
  MenuTypeEnum,
  MenuModeEnum,
  TriggerEnum,
  MixSidebarTriggerEnum,
  TabStyleEnum,
} from '/@/enums/menuEnum';
import { CacheTypeEnum } from '/@/enums/cacheEnum';
import {
  ContentEnum,
  PermissionModeEnum,
  ThemeEnum,
  RouterTransitionEnum,
  SettingButtonPositionEnum,
  SessionTimeoutProcessingEnum,
} from '/@/enums/appEnum';
import { SIDE_BAR_BG_COLOR_LIST, HEADER_PRESET_BG_COLOR_LIST } from './designSetting';
import { primaryColor } from '../../build/config/themeConfig';

// ！需要清除浏览器缓存才能生效

const setting: ProjectConfig = {
  // 是否显示设置按钮
  showSettingButton: true,

  // 是否显示深色主题按钮
  showDarkModeToggle: true,

  // `Settings` 按钮位置
  settingButtonPosition: SettingButtonPositionEnum.AUTO,

  // 路由权限模式
  permissionMode: PermissionModeEnum.ROUTE_MAPPING,

  // 权限缓存存储位置,localStorage或者sessionStorage
  permissionCacheType: CacheTypeEnum.LOCAL,

  // 会话超时处理方式
  sessionTimeoutProcessing: SessionTimeoutProcessingEnum.ROUTE_JUMP,

  // 主题色
  themeColor: primaryColor,

  //主题风格
  themeStyle: ThemeStyleEnum.DEFAULT,

  // 灰色模式
  grayMode: false,

  // 色弱模式
  colorWeak: false,

  // 全屏模式，关闭菜单、工具栏，方便嵌入其他系统中
  fullContent: false,

  // 内容显示方式
  contentMode: ContentEnum.FULL,

  // 是否显示logo
  showLogo: true,

  // 是否显示页脚
  showFooter: false,

  // 工具栏设置
  headerSetting: {
    // 背景色
    bgColor: HEADER_PRESET_BG_COLOR_LIST[0],
    // 固定模式
    fixed: true,
    // 是否显示
    show: true,
    // 主题色
    theme: ThemeEnum.LIGHT,
    // 是否开启锁屏页
    useLockPage: true,
    // 是否显示全屏按钮
    showFullScreen: true,
    // 是否显示文档按钮
    showDoc: true,
    // 是否显示通知
    showNotice: true,
    // 是否显示搜索
    showSearch: true,
  },

  // 菜单设置
  menuSetting: {
    // 侧边背景色
    bgColor: SIDE_BAR_BG_COLOR_LIST[2],
    // 是否固定
    fixed: true,
    // 是否折叠
    collapsed: false,
    // When sider hide because of the responsive layout
    siderHidden: false,
    // 折叠后是否显示菜单名
    // Whether to display the menu name when folding the menu
    collapsedShowTitle: false,
    // 菜单宽度拖拽
    // Only limited to the opening of the left menu, the mouse has a drag bar on the right side of the menu
    canDrag: false,
    // 是否显示菜单
    show: true,
    // 是否隐藏菜单
    hidden: false,
    // 菜单默认宽度
    menuWidth: 210,
    //菜单横向padding
    menuPaddingX: 0,
    // 菜单风格
    mode: MenuModeEnum.INLINE,
    // 菜单位置
    type: MenuTypeEnum.SIDEBAR,
    // 菜单主题色
    theme: ThemeEnum.DARK,
    // 是否分割菜单
    split: false,
    // 顶部菜单对齐方式
    topMenuAlign: 'center',
    // 折叠触发器位置
    trigger: TriggerEnum.HEADER,
    // Turn on accordion mode, only show a menu
    accordion: true,
    // Switch page to close menu
    closeMixSidebarOnChange: false,
    // Module opening method ‘click’ |'hover'
    mixSideTrigger: MixSidebarTriggerEnum.CLICK,
    // Fixed expanded menu
    mixSideFixed: false,
  },

  // 标签页
  multiTabsSetting: {
    //标签页样式
    tabStyle: TabStyleEnum.DEFAULT,
    //是否缓存
    cache: false,
    // 是否显示
    show: true,
    // 能否拖拽
    canDrag: true,
    // 是否显示快捷操作
    showQuick: true,
    // 是否显示刷新按钮
    showRedo: true,
    // 是否可全屏
    showFold: true,
    //固定首页
    affixHome: true,
  },

  // 页面动画
  transitionSetting: {
    // 开启转场动画
    // The disabled state will also disable pageLoading
    enable: true,

    // 动画类型
    basicTransition: RouterTransitionEnum.FADE_SIDE,

    // 页面加载动画
    // Only open when enable=true
    openPageLoading: true,

    // 页面加载进度条
    openNProgress: false,
  },

  // 是否启用KeepAlive缓存最好在开发期间关闭，否则每次都需要清除缓存
  openKeepAlive: true,

  // 自动锁屏时间，0不锁屏，单位分钟
  lockTime: 0,

  // 导航面包屑
  showBreadCrumb: true,

  // 面包屑图标
  showBreadCrumbIcon: false,

  // 开启 error-handler-plugin
  useErrorHandle: false,

  // 开启 滑到页顶按钮
  useOpenBackTop: true,

  //  Is it possible to embed iframe pages
  canEmbedIFramePage: true,

  // 点击关闭通知
  closeMessageOnSwitch: true,

  // 切换接口时是否取消已发送但未响应的http请求.
  // 如果启用了，我想覆盖一个接口。可以在单独的界面中设置
  removeAllHttpPending: false,
};

export default setting;
